home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
commodore-users-of-norman
/
CUON_09_(08-1984).d64
/
home inventory
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2019-04-13
|
7KB
|
229 lines
100 REM --HOME INVENTORY--
110 :
120 DIMD$(300),V(300),L$(300)
130 GOSUB1920
140 PRINT"[147] ENTER TODAY'S DATE (MO/DAY/YR)"
150 INPUTND$
160 PRINT"[147]"TAB(15)"MAIN INDEX"
170 PRINTTAB(7)"PRESS TO":PRINTTAB(9)"1 ADD NEW ITEMS"
180 PRINTTAB(9)"2 DELETE AN ITEM":PRINTTAB(9)"3 CHANGE AN ITEM"
190 PRINTTAB(9)"4 VIEW A LOCATION":PRINTTAB(9)"5 VIEW ALL ITEMS"
200 PRINTTAB(9)"6 UPDATE VALUES":PRINTTAB(9)"7 PRINT INVENTORY"
210 PRINTTAB(9)"8 ARRANGE INVENTORY":PRINTTAB(9)"9 END THE SESSION"
220 GETX$:IFX$=""THEN220
230 X=VAL(X$):IFX<1ORX>9THEN220
240 PRINT"[147]"
250 ONXGOSUB460,670,770,1010,990,1190,1370,2300,2120:GOTO160
260 :
270 REM --THIS ROUTINE USED BY PRINTING SUBROUTINE--
280 :
290 T$="KITCHEN":RETURN
300 T$="LIVING ROOM":RETURN
310 T$="DEN":RETURN
320 T$="SW BEDROOM":RETURN
330 T$="NE BEDROOM":RETURN
340 T$="E BEDROOM":RETURN
350 T$="SE BEDROOM":RETURN
360 T$="S BATHROOM":RETURN
370 T$="N BATHROOM":RETURN
380 T$="LAUNDRY":RETURN
390 T$="HALL CLOSETS":RETURN
400 T$="ATTIC":RETURN
410 T$="PATIO":RETURN
420 T$="WORKSHOP":RETURN
430 :
440 REM --ADD NEW ITEMS--
450 :
460 FORI=N+1TO300:PRINT"ENTER DATA FOR RECORD NO.";N+1
470 PRINT"ITEM DESCRIPTION (MAX 60 CHARACS)"
480 PRINT" (USE NO COMMAS OR COLONS)"
490 INPUTD$(I)
500 PRINT"ITEM VALUE (NEAREST WHOLE DOLLAR)"
510 INPUTV(I)
520 PRINT"ITEM LOCATION (ENTER ONE OF FOLLOWING)"
530 PRINT"KITCHEN LIVING ROOM DEN"
540 PRINT"SW BEDROOM NE BEDROOM E BEDROOM"
550 PRINT"SE BEDROOM S BATHROOM N BATHROOM"
560 PRINT"PATIO WORKSHOP ATTIC":PRINT"HALL CLOSETS";
570 PRINTTAB(14)"LAUNDRY"
580 INPUTT$:GOSUB2220:L$(I)=T$:N=N+1:PRINT"[147]ADD ANOTHER ITEM? (Y/N)"
590 GETX$:IFX$<>"Y"ANDX$<>"N"THEN590
600 IFX$="N"THENRETURN
610 PRINT"[147]":NEXTI:PRINT"DATA FILE FULL...PRESS C TO CONTINUE"
620 GETX$:IFX$<>"C"THEN620
630 RETURN
640 :
650 REM --DELETE AN ITEM--
660 :
670 PRINT"ENTER NUMBER OF ITEM TO BE DELETED"
680 PRINT"(REFER TO PRINTOUT FOR ITEM NUMBERS)"
690 INPUTX:IFX<1ORX>NTHEN690
700 FORK=XTON:D$(K)=D$(K+1):V(K)=V(K+1):L$(K)=L$(K+1):NEXTK:N=N-1
710 PRINT"ITEM HAS BEEN DELETED":PRINT"PRESS C TO CONTINUE"
720 GETX$:IFX$<>"C"THEN720
730 RETURN
740 :
750 REM --CHANGE AN ITEM--
760 :
770 PRINT"ENTER NUMBER OF ITEM TO BE CHANGED"
780 PRINT"(REFER TO PRINTOUT FOR ITEM NUMBERS)"
790 INPUTX:IFX<1ORX>NTHEN790
800 PRINT" PRESS TO CHANGE"
810 PRINTTAB(8)"1 ITEM DESCRIPTION":PRINTTAB(8)"2 ITEM VALUE"
820 PRINTTAB(8)"3 ITEM LOCATION"
830 GETX$:IFX$<>"1"ANDX$<>"2"ANDX$<>"3"THEN830
840 K=VAL(X$):ONKGOSUB850,880,900:GOTO920
850 PRINT"PRESENT DESCRIPTION: ";D$(X)
860 PRINT"ENTER NEW DESCRIPTION"
870 INPUTD$(X):RETURN
880 PRINT"PRESENT VALUE: ";V(X)
890 PRINT"ENTER NEW VALUE":INPUTV(X):RETURN
900 PRINT"PRESENT LOCATION: ";L$(X)
910 PRINT"ENTER NEW LOCATION":INPUTT$:GOSUB2220:L$(X)=T$:RETURN
920 PRINT"[147]CHANGE OTHER ITEMS? (Y/N)"
930 GETX$:IFX$<>"Y"ANDX$<>"N"THEN930
940 IFX$="N"THENRETURN
950 PRINT"[147]":GOTO770
960 :
970 REM --VIEW A LOCATION OR ALL ITEMS--
980 :
990 IFN=0THEN1130
1000 T=0:FORI=1TON:GOTO1050
1010 PRINT"WHAT LOCATION?"
1020 INPUTT$:GOSUB2220:PRINT"[147]"
1030 IFN=0THEN1130
1040 T=0:FORI=1TON:IFL$(I)<>T$THEN1120
1050 PRINT"ITEM NO.";I;" VALUE:";V(I);" ";L$(I)
1060 PRINTTAB(6)LEFT$(D$(I),30):PRINTTAB(6)MID$(D$(I),31)"":T=T+1
1070 IFT<4THEN1120
1080 PRINT"PRESS C TO CONTINUE VIEWING":PRINT"PRESS R TO RETURN TO MAIN INDEX"
1090 GETX$:IFX$<>"C"ANDX$<>"R"THEN1090
1100 IFX$="R"THENRETURN
1110 T=0
1120 NEXTI
1130 PRINT"END OF FILE....PRESS C TO CONTINUE"
1140 GETX$:IFX$<>"C"THEN1140
1150 RETURN
1160 :
1170 REM --UPDATE ALL VALUES--
1180 :
1190 PRINT"DO YOU WANT TO INCREASE VALUES? (Y/N)"
1200 GETX$:IFX$<>"Y"ANDX$<>"N"THEN1200
1210 PRINT"BY WHAT PERCENT (INTEGER) DO YOU WANT THE VALUES ";
1220 IFX$="Y"THENPRINT"INCREASED?":GOTO1240
1230 PRINT"DECREASED?"
1240 INPUTC:C=C/100:IFX$="N"THENC=1-C:GOTO1260
1250 C=1+C
1260 PRINTTAB(2)"[147]PLEASE WAIT....UPDATING VALUES"
1270 FORI=1TON:V(I)=V(I)*C
1280 X=INT(V(I)):Y=V(I)-X:IFY>.5THENX=X+1
1290 V(I)=X:NEXTI:RETURN
1300 :
1310 REM --PRINT INVENTORY--
1320 :
1330 IFV(I)<10THENPRINT#4,CHR$(16)"75"V(I):RETURN
1340 IF V(I)<100THENPRINT#4,CHR$(16)"74"V(I):RETURN
1350 IF V(I)<1000THENPRINT#4,CHR$(16)"73"V(I):RETURN
1360 PRINT#4,CHR$(16)"72"V(I):RETURN
1370 PRINT" PRESS TO PRINT"
1380 PRINT" 1 TOTAL INVENTORY BY ITEM"
1390 PRINT" 2 TOTAL INVENTORY BY LOCATION"
1400 PRINT" 3 SINGLE LOCATION INVENTORY"
1410 PRINT" 4 VALUE SUMMARY BY LOCATION"
1420 PRINT" 5 RETURN TO MAIN INDEX"
1430 GETP$:IFP$=""THEN1430
1440 P=VAL(P$):IFP<1ORP>5THEN1430
1450 IF P=5THENRETURN
1460 ONPGOSUB1470,1540,1490,1600:RETURN
1470 GOSUB1860:GOSUB1760:GOSUB1870:GOSUB1810:OPEN4,4:FORI=1TON
1480 PRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330:NEXTI:CLOSE4:RETURN
1490 PRINT"[147]WHICH LOCATION?":INPUTT$:GOSUB2220:GOSUB1860:GOSUB1760:OPEN4,4
1500 PRINT#4,CHR$(16)"27INVENTORY OF "T$" ONLY":PRINT#4:PRINT#4:CLOSE4
1510 GOSUB1810:OPEN4,4:FORI=1TON
1520 IFL$(I)=T$THENPRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330
1530 NEXTI:CLOSE4:RETURN
1540 GOSUB1860:GOSUB1760:FORK=1TO14
1550 ONKGOSUB290,300,310,320,330,340,350,360,370,380,390,400,410,420
1560 OPEN4,4:GOSUB1840:PRINT#4
1570 CLOSE4:GOSUB1810:OPEN4,4:FORI=1TON
1580 IFL$(I)=T$THENPRINT#4,I;CHR$(16)"11"D$(I);:GOSUB1330
1590 NEXTI:PRINT#4:PRINT#4:PRINT#4:CLOSE4:NEXTK:RETURN
1600 GOSUB1860:GOSUB1760:OPEN4,4
1610 PRINT#4,CHR$(14)CHR$(16)"19CONTENTS VALUE SUMMARY"CHR$(15):PRINT#4
1620 PRINT#4:PRINT#4,CHR$(16)"23LOCATION";CHR$(16)"43TOTAL VALUE":PRINT#4
1630 FORK=1TO14
1640 ONKGOSUB290,300,310,320,330,340,350,360,370,380,390,400,410,420
1650 Z=0:FORI=1TON:IFL$(I)=T$THENZ=Z+V(I)
1660 NEXTI:ZT=ZT+Z
1670 PRINT#4,CHR$(16)"23"T$;:GOSUB1680:NEXT:Z=ZT:GOTO1730
1680 IFZ<10THENPRINT#4,CHR$(16)"48"Z:RETURN
1690 IFZ<100THENPRINT#4,CHR$(16)"47"Z:RETURN
1700 IFZ<1000THENPRINT#4,CHR$(16)"46"Z:RETURN
1710 IFZ<10000THENPRINT#4,CHR$(16)"45"Z:RETURN
1720 PRINT#4,CHR$(16)"44"Z:RETURN
1730 PRINT#4,CHR$(16)"44[163][163][163][163][163][163][163][163][163]"
1740 PRINT#4,CHR$(16)"23TOTAL HOME"CHR$(16)"43$";:GOSUB1680
1750 PRINT#4:PRINT#4:CLOSE4:Z=0:ZT=0:RETURN
1760 OPEN4,4:FORJ=1TO3:PRINT#4:NEXT
1770 PRINT#4,CHR$(14)" INVENTORY OF 4216 NW 51ST STREET"
1780 PRINT#4," OKLAHOMA CITY, OKLAHOMA 73112"
1790 PRINT#4," WILLIAM P. AND MARY J.CANNON"
1800 PRINT#4:PRINT#4:PRINT#4,CHR$(15)OD$:PRINT#4:PRINT#4:CLOSE4:RETURN
1810 OPEN4,4:PRINT#4,"MASTER"CHR$(16)"69REPLACEMENT"
1820 PRINT#4,"ITEM NO"CHR$(16)"34DESCRIPTION"CHR$(16)"73VALUE"
1830 PRINT#4:CLOSE4:RETURN
1840 PRINT#4,TAB(40-LEN(T$));:PRINT#4,CHR$(14)T$CHR$(15):PRINT#4,TAB(40-LEN(T$))
1850 FORL=1TOLEN(T$):PRINT#4,CHR$(14)CHR$(163)CHR$(15);:NEXTL:RETURN
1860 PRINT"[147] PLEASE WAIT....PRINTER WORKING":RETURN
1870 OPEN4,4:PRINT#4,TAB(25)"MASTER INVENTORY - ENTIRE HOME"
1880 PRINT#4,TAB(25)"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]":PRINT#4:CLOSE4:RETURN
1890 :
1900 REM --LOAD DATA FILE--
1910 :
1920 PRINT"[147] PLEASE WAIT....LOADING DATA FILE"
1930 OPEN 15,8,15:OPEN4,8,4,"0:INV,S,R"
1940 INPUT#15,EN,EM$,ET,ES:IFEN=0THEN1960
1950 CLOSE4:CLOSE15:GOTO1980
1960 INPUT#4,N,OD$:IFN=0THEN1950
1970 FORI=1TON:INPUT#4,D$(I),V(I),L$(I):NEXTI:CLOSE4:CLOSE15
1980 PRINT"[147]":PRINTTAB(6)"THE DATA FILE HAS";N;"RECORDS"
1990 PRINTTAB(9)"PRESS C TO CONTINUE"
2000 GETX$:IFX$<>"C"THEN2000
2010 RETURN
2020 :
2030 REM --SAVE DATA FILE--
2040 :
2050 PRINTTAB(3)"PLEASE WAIT....SAVING DATA FILE"
2060 OPEN4,8,4,"@0:INV,S,W"
2070 PRINT#4,N:PRINT#4,OD$:FORI=1TON
2080 PRINT#4,D$(I):PRINT#4,V(I):PRINT#4,L$(I):NEXTI:CLOSE4:RETURN
2090 :
2100 REM --END THE SESSION--
2110 :
2120 PRINT"HAVE RECORDS BEEN CHANGED OR ADDED"
2130 PRINT"DURING THIS SESSION? (Y/N)"
2140 GETX$:IFX$<>"Y"ANDX$<>"N"THEN2140
2150 IFX$="N"THEN2170
2160 OD$=ND$:PRINT"[147]":GOSUB2050
2170 PRINT"[147]PROCESSING CEASED FOR ";CHR$(34);"HOME INVENTORY";CHR$(34)""
2180 PRINTTAB(12)"HAVE A HAPPY DAY!":END
2190 :
2200 REM --TEST INPUT ROUTINE--
2210 :
2220 IFT$="KITCHEN"ORT$="LIVING ROOM"ORT$="DEN"ORT$="HALL CLOSETS"THENRETURN
2230 IFT$="NE BEDROOM"ORT$="E BEDROOM"ORT$="SE BEDROOM"ORT$="ATTIC"THENRETURN
2240 IFT$="S BATHROOM"ORT$="N BATHROOM"ORT$="LAUNDRY"THENRETURN
2250 IFT$="PATIO"ORT$="WORKSHOP"ORT$="SW BEDROOM"THEN RETURN
2260 INPUTT$:GOTO2220
2270 :
2280 REM --ARRANGE INVENTORY IN DESCENDING ORDER OF VALUES--
2290 :
2300 PRINT"":PRINTTAB(4)"PLEASE WAIT....COMPUTER THINKING":B=1
2310 B=2*B:IFB<NTHEN2310
2320 B=INT(B/2):IFB=0THENRETURN
2330 FORY=1TON-B:X=Y
2340 I=X+B:IFV(X)=>V(I)THEN2370
2350 N$=D$(X):D$(X)=D$(I):D$(I)=N$:T=V(X):V(X)=V(I):V(I)=T:N$=L$(X):L$(X)=L$(I)
2360 L$(I)=N$:X=X-B:IFX>0THEN2340
2370 NEXTY:GOTO2320